#include <deque>
#include <future>
#include <iostream>
#include <mutex>
#include <thread>
#include <utility>
template <typename Func>
std::future<int> DoJob(Func f)
{
    std::packaged_task<int(int)> tasks(f);
    tasks(1);
    return tasks.get_future();
}

int get(int a)
{
    return a;
}

int main()
{
    /*
	 *tasks就像一个包装好的std::function，可以像函数一样执行。
	 * */
    auto p = DoJob(get);
    std::cout << p.get() << std::endl;
}
